Jest 自己的程式自己測試


Posted by fang on 2020-06-19

先附上 Jest官網,這是一個用來測試自己程式的模組,雖然也在寫程式的時候也可以隨時印出看結果來測試,但是能夠系統化測試還是更方便管理的。


安裝 Just

今天我的電腦要使用 npm 來安裝,先在終端機選取好要存取的位置,然後指令走起:

npm install --save-dev jest

建立測試檔

假設今天要被測試的檔案名稱叫做 index.js ,先放上 index.js 的內容:

function repeat(str, times){
  var result = ''
  for(var i=0; i<times; i++){
    result += str
  }
  return result
}
module.exports = repeat //讓別人可以使用

要新增一個測試檔時,在終端機輸入touch index.test.js,然後開啟檔案,並且輸入測試程式,另外,在此也使用describe讓測試資料群組起來,寫起來更有結構

var repeat = require('./index')

describe('測試 repeat', () => {
    test('a 重複 5 次應該要等於 aaaaa', () => {
      expect(repeat('a', 5)).toBe('aaaaa');
    });
    test('abc 重複 2 次應該要等於 abcabc', () => {
      expect(repeat('abc', 2)).toBe('abcabc');
    });
    test('"" 重複 10 次應該要等於 ""', () => {
      expect(repeat('', 10)).toBe('');
    });
 })

修改 package.json

找到 Scripts,將裡面的 test 執行指令修改為jest,如果想要只測試 index.test.js,就可以輸入jest index.test.js


在終端機上執行

要執行的時候,直接輸入nmp run test,就可以等待結果了。
如果 npm 版本比較新,可以輸入npx jest index.test.js,系統除了本身所在的專案,也會直接在系統本身搜尋 index.test.js,搜尋範圍更大啦!


測試結果

先秀出測試檔案 index.test.js

以及要被測試檔案 index.js

當我們不在 package.json 中修改任何資料時,可以直接在終端機上輸入npx jest index.test.js,執行如下:

如果在 package.json 中修改 test 執行指令為jest,並在終端機輸入npm run test,也是可以執行成功的:

如果今天顯示的是程式碼有誤,Jest 也會顯示哪邊報錯,如下圖:

  • Expected 代表期望的答案
  • Received 代表測試結果

大概就是這樣啦,寫完之後也踏踏實實的測試了一遍這個套件,如果之後使用發現有需要補充的會隨時更改,也歡迎路過看到文章的人幫我看看哪邊寫錯。
ps.其實這個部落格只是我的筆記,所以是寫給自己看的XD


#Jest #Unit Test







Related Posts

How to solve the perpetual loading issue in Evernote? Evernote 一直轉圈圈的解決辦法

How to solve the perpetual loading issue in Evernote? Evernote 一直轉圈圈的解決辦法

Return first capital letter and its index

Return first capital letter and its index

1 - 非同步之認識Promise

1 - 非同步之認識Promise


Comments